REQUIRES: x86_64-linux

To update the inputs used below run Inputs/update_memprof_inputs.sh /path/to/updated/clang
RUN: llvm-profdata show --memory %p/Inputs/inline.memprofraw --profiled-binary %p/Inputs/inline.memprofexe | FileCheck %s

CHECK:  MemprofProfile:
CHECK-NEXT:  Summary:
CHECK-NEXT:    Version: 3
CHECK-NEXT:    NumSegments: {{[0-9]+}}
CHECK-NEXT:    NumMibInfo: 2
CHECK-NEXT:    NumAllocFunctions: 2
CHECK-NEXT:    NumStackOffsets: 1
CHECK-NEXT:  Segments:
CHECK-NEXT:  -
CHECK-NEXT:    BuildId: {{[[:xdigit:]]+}}
CHECK-NEXT:    Start: 0x{{[[:xdigit:]]+}}
CHECK-NEXT:    End: 0x{{[[:xdigit:]]+}}
CHECK-NEXT:    Offset: 0x{{[[:xdigit:]]+}}
CHECK-NEXT:  -

CHECK:  Records:
CHECK-NEXT:  -
CHECK-NEXT:    FunctionGUID: 15505678318020221912
CHECK-NEXT:    AllocSites:
CHECK-NEXT:    -
CHECK-NEXT:      Callstack:
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15505678318020221912
CHECK-NEXT:        SymbolName: qux
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 15
CHECK-NEXT:        Inline: 1
CHECK-NEXT:      -
CHECK-NEXT:        Function: 6699318081062747564
CHECK-NEXT:        SymbolName: foo
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 18
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      -
CHECK-NEXT:        Function: 16434608426314478903
CHECK-NEXT:        SymbolName: bar
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 19
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15822663052811949562
CHECK-NEXT:        SymbolName: main
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 3
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      MemInfoBlock:
CHECK-NEXT:        AllocCount: 1
CHECK-NEXT:        TotalAccessCount: 1
CHECK-NEXT:        MinAccessCount: 1
CHECK-NEXT:        MaxAccessCount: 1
CHECK-NEXT:        TotalSize: 1
CHECK-NEXT:        MinSize: 1
CHECK-NEXT:        MaxSize: 1
CHECK-NEXT:        AllocTimestamp: {{[0-9]+}}
CHECK-NEXT:        DeallocTimestamp: {{[0-9]+}}
CHECK-NEXT:        TotalLifetime: 0
CHECK-NEXT:        MinLifetime: 0
CHECK-NEXT:        MaxLifetime: 0
CHECK-NEXT:        AllocCpuId: {{[0-9]+}}
CHECK-NEXT:        DeallocCpuId: {{[0-9]+}}
CHECK-NEXT:        NumMigratedCpu: 0
CHECK-NEXT:        NumLifetimeOverlaps: 0
CHECK-NEXT:        NumSameAllocCpu: 0
CHECK-NEXT:        NumSameDeallocCpu: 0
CHECK-NEXT:        DataTypeId: {{[0-9]+}}
CHECK-NEXT:        TotalAccessDensity: 100
CHECK-NEXT:        MinAccessDensity: 100
CHECK-NEXT:        MaxAccessDensity: 100
CHECK-NEXT:        TotalLifetimeAccessDensity: 100000
CHECK-NEXT:        MinLifetimeAccessDensity: 100000
CHECK-NEXT:        MaxLifetimeAccessDensity: 100000
CHECK-NEXT:  -
CHECK-NEXT:    FunctionGUID: 6699318081062747564
CHECK-NEXT:    AllocSites:
CHECK-NEXT:    -
CHECK-NEXT:      Callstack:
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15505678318020221912
CHECK-NEXT:        SymbolName: qux
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 15
CHECK-NEXT:        Inline: 1
CHECK-NEXT:      -
CHECK-NEXT:        Function: 6699318081062747564
CHECK-NEXT:        SymbolName: foo
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 18
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      -
CHECK-NEXT:        Function: 16434608426314478903
CHECK-NEXT:        SymbolName: bar
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 19
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15822663052811949562
CHECK-NEXT:        SymbolName: main
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 3
CHECK-NEXT:        Inline: 0
CHECK-NEXT:      MemInfoBlock:
CHECK-NEXT:        AllocCount: 1
CHECK-NEXT:        TotalAccessCount: 1
CHECK-NEXT:        MinAccessCount: 1
CHECK-NEXT:        MaxAccessCount: 1
CHECK-NEXT:        TotalSize: 1
CHECK-NEXT:        MinSize: 1
CHECK-NEXT:        MaxSize: 1
CHECK-NEXT:        AllocTimestamp: {{[0-9]+}}
CHECK-NEXT:        DeallocTimestamp: {{[0-9]+}}
CHECK-NEXT:        TotalLifetime: 0
CHECK-NEXT:        MinLifetime: 0
CHECK-NEXT:        MaxLifetime: 0
CHECK-NEXT:        AllocCpuId: {{[0-9]+}}
CHECK-NEXT:        DeallocCpuId: {{[0-9]+}}
CHECK-NEXT:        NumMigratedCpu: 0
CHECK-NEXT:        NumLifetimeOverlaps: 0
CHECK-NEXT:        NumSameAllocCpu: 0
CHECK-NEXT:        NumSameDeallocCpu: 0
CHECK-NEXT:        DataTypeId: {{[0-9]+}}
CHECK-NEXT:        TotalAccessDensity: 100
CHECK-NEXT:        MinAccessDensity: 100
CHECK-NEXT:        MaxAccessDensity: 100
CHECK-NEXT:        TotalLifetimeAccessDensity: 100000
CHECK-NEXT:        MinLifetimeAccessDensity: 100000
CHECK-NEXT:        MaxLifetimeAccessDensity: 100000
CHECK-NEXT:    CallSites:
CHECK-NEXT:    -
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15505678318020221912
CHECK-NEXT:        SymbolName: qux
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 15
CHECK-NEXT:        Inline: 1
CHECK-NEXT:    -
CHECK-NEXT:      -
CHECK-NEXT:        Function: 6699318081062747564
CHECK-NEXT:        SymbolName: foo
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 18
CHECK-NEXT:        Inline: 0
CHECK-NEXT:  -
CHECK-NEXT:    FunctionGUID: 16434608426314478903
CHECK-NEXT:    CallSites:
CHECK-NEXT:    -
CHECK-NEXT:      -
CHECK-NEXT:        Function: 16434608426314478903
CHECK-NEXT:        SymbolName: bar
CHECK-NEXT:        LineOffset: 0
CHECK-NEXT:        Column: 19
CHECK-NEXT:        Inline: 0
CHECK-NEXT:  -
CHECK-NEXT:    FunctionGUID: 15822663052811949562
CHECK-NEXT:    CallSites:
CHECK-NEXT:    -
CHECK-NEXT:      -
CHECK-NEXT:        Function: 15822663052811949562
CHECK-NEXT:        SymbolName: main
CHECK-NEXT:        LineOffset: 1
CHECK-NEXT:        Column: 3
CHECK-NEXT:        Inline: 0
